home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 3 / Amiga Format CD03 (1996-07-04)(Future Publishing)(GB)(Track 1 of 6)[!][issue 1996-08].iso / comms / netsoftware / sana2_cslip.readme < prev    next >
Text File  |  1996-05-20  |  5KB  |  128 lines

  1. Short: SANA2 (c)slip device
  2. Uploader: rhialto@mbfys.kun.nl (Olaf Seibert)
  3. Type: comm/net
  4. Version: 15-Aug-1993
  5.  
  6. This is a modified version of Commodores example SANA driver:
  7. the slip.device. As released, it contained a number of bugs and
  8. misfeatures.
  9.  
  10. Installation:
  11. ------------
  12. -   It is best to get the full, original SANA developer package. It
  13.     is available on Fish disk number 779. Newer versions may be
  14.     available by ftp.
  15.  
  16. -   Summary: Place the file (c)slip.device in DEVS:Networks/ and
  17.     (c)slip<unit>.config in ENV(ARC):SANA2/.
  18.  
  19. Additions:
  20. ---------
  21. -   Now also header-compressed slip. (See RFC-1144 by Van Jacobson) This 
  22.     is even compatible with non-comressing slip drivers, as it first 
  23.     tries to trigger the other side of the connection into using 
  24.     compression as well, but ceases these attempts if they appear 
  25.     unsuccessful. In any case, once the other side starts sending 
  26.     compressed headers, it is turned on in the local-to-remote direction 
  27.     as well.
  28.  
  29. Corrected bugs:
  30. --------------
  31. -   The AbortIO function erroneously assumed that A3 was the Unit
  32.     pointer. Even Commodore's official example in the RKM gets that
  33.     wrong (see page 567).
  34.  
  35. -   S2_GETGLOBALSTATS always returned an error, even though it worked.
  36.     Well, it got the microseconds of the last online wrong.
  37.  
  38. -   S2_TRACKTYPE had two bugs: it would always think a type that you
  39.     requested to track would not yet be tracked, even if it would
  40.     get the packet type right, which it didn't. As a result, every
  41.     call to S2_TRACKTYPE allocated memory for the statistics, yet
  42.     S2_GETTYPESTATS always claimed the type wasn't being tracked.
  43.  
  44. -   S2_GETSTATIONADDRESS should return 2 addresses, the current address,
  45.     and the ROM address. It used to give only a 0.0.0.0 "ROM" address in
  46.     the wrong location. Now, it considers the address in the config
  47.     file the "ROM" address, and the one from S2_CONFIGINTERFACE is
  48.     the current address. Initially both are the same (and both are
  49.     futher ignored since they are meaningless to slip).
  50.  
  51. -   S2_DEVICEQUERY didn't give all required information, and claimed a
  52.     weird size for it.
  53.  
  54. -   Flags set when opening the serial device should be in io->io_SerFlags,
  55.     not in the flags argument to OpenDevice().
  56.  
  57. -   Returned read requests from the serial device were sized by their
  58.     io_Length instead of io_Actual.
  59.  
  60. -   Serial input could potentially overflow the input buffer.
  61.  
  62. -   The code assumed, by using registered arguments, that the callback 
  63.     routines would have their arguments in the correct registers.  Now 
  64.     the type of the pointer explicitly declares the calling convention.
  65.  
  66. -   And the worst of all: it attempted this EXTREMELY STUPID TRICK:
  67.  
  68.     #define SLIPBase ((struct SLIPDevice *)__builtin_getreg(14))
  69.  
  70.     This is terrible!!! That people write code like this! How can you be
  71.     sure the compiler won't use A6 for a register variable somewhere and
  72.     make it unusable in the functions that it calls? In fact, SAS/C 6.2
  73.     does something like that, in ReadConfig..., when it first calls an Exec
  74.     function and then a DOS function, and in both cases fetches the
  75.     required base pointer off A6.
  76.  
  77.     If you want global register variables, use a compiler that supports
  78.     them, such as gcc.
  79.  
  80. Corrected misfeatures:
  81. ---------------------
  82.  
  83. -   The device now runs at the same priority as the opener. This helps
  84.     preventing starvation of the opener in case of high amounts of
  85.     input.
  86.  
  87. -   Uses the serial.device's SERF_EOFMODE mode. This prevents the
  88.     slip.device from hogging the CPU at high priority, and even at equal
  89.     priority improves efficiency.
  90.  
  91. Debatable issues:
  92. ----------------
  93.  
  94. -   Optionally, serial device reads are only initiated when they are
  95.     (already) requested by the caller. This is contrary to the SANA
  96.     philosophy, and therefore makes debugging protocol stacks more
  97.     difficult. On the other hand, why not use the serial device's buffer to
  98.     keep input, instead of dropping it? This also reduces CPU load in case
  99.     the device is open but unused for some reason.  (As it was, the
  100.     slip.device would continually read and decode packets, even if nobody
  101.     wanted them.)
  102.  
  103.  
  104. ============================= Archive contents =============================
  105.  
  106. Original  Packed Ratio    Date     Time    Name
  107. -------- ------- ----- --------- --------  -------------
  108.     1895     807 57.4% 21-Jun-93 15:35:32  COPYRIGHT
  109.    18881    6525 65.4% 29-Jun-93 16:25:34  cslip.c
  110.     9128    5692 37.6% 13-Aug-93 04:47:50  cslip.device
  111.    10893    4040 62.9% 29-Jun-93 16:05:12  cslip.h
  112.    48851   13703 71.9% 13-Aug-93 04:31:20  device_funcs.c
  113.     3443     803 76.6% 13-Aug-93 04:30:24  device_protos.h
  114.      161     115 28.5% 16-Jun-93 15:19:06  endcode.asm
  115.     2309     856 62.9% 04-Jul-93 22:25:00  Makefile.cslip
  116.     2261     840 62.8% 25-Jun-93 02:41:34  Makefile.slip
  117.       68      66  2.9% 11-Jan-93 15:53:32  readme
  118.     4215    2093 50.3% 15-Aug-93 01:00:36  README.Rhialto
  119.     6220    3836 38.3% 13-Aug-93 04:35:50  slip.device
  120.     3401    1594 53.1% 25-Jun-93 01:26:58  slip_device.asm
  121.     5599    2194 60.8% 25-Jun-93 00:44:10  slip_device.h
  122.      895     491 45.1% 11-Jan-93 15:53:32  slip_device.i
  123.      202     118 41.5% 20-Jun-93 01:57:24  slip_rev.h
  124.      244     131 46.3% 20-Jun-93 01:58:10  slip_rev.i
  125.        2       2  0.0% 20-Jun-93 01:56:16  slip_rev.rev
  126. -------- ------- ----- --------- --------
  127.   118668   43906 63.0% 15-Aug-93 15:37:08   18 files
  128.